﻿using System;
using NsbExtensions.Messages.Management.Monitoring;

namespace NsbExtensions.Endpoint.Management.Monitoring
{
    //ICloneable is included to allow a group of configured probes to be kept in a list,
    //and then copied prior to taking measurements in case a probe implements some stateful
    //or state changing behavior. This is probably not a great solution, I would think
    //that the IoC could be utilized here in a much more robust, professional, less intrusive
    //way. But that will be for another time.
    public interface IEndpointStatusProbe : ICloneable
    {
        EndpointMeasurement TakeMeasurement(IMessagingEndpoint endpoint);
    }
}